|
Ansible : Use Playbook#2
2015/04/22 |
|
It's possible to use variables in Ansible Playbook.
|
|
| [1] | This is the example to use variables. |
|
[cent@dlp ~]$
vi playbook_sample.yml
- hosts: target_servers
become: yes
become_method: sudo
tasks:
- name: General packages are installed
yum: name={{ item }} state=installed
with_items:
- vim-enhanced
- wget
- unzip
tags: General_Packages
ansible-playbook playbook_sample.yml --ask-become-pass SUDO password: PLAY [target_servers] ********************************************************* GATHERING FACTS *************************************************************** ok: [10.0.0.52] ok: [10.0.0.51] TASK: [General packages are installed] **************************************** changed: [10.0.0.52] => (item=vim-enhanced,wget,unzip) changed: [10.0.0.51] => (item=vim-enhanced,wget,unzip) PLAY RECAP ******************************************************************** 10.0.0.51 : ok=2 changed=1 unreachable=0 failed=0 10.0.0.52 : ok=2 changed=1 unreachable=0 failed=0 # confirm settings [cent@dlp ~]$ ansible target_servers -m shell -a "rpm -qa | egrep 'vim-enhanced|wget|unzip'" --ask-become-pass SUDO password: 10.0.0.52 | success | rc=0 >> wget-1.12-5.el6_6.1.x86_64 vim-enhanced-7.2.411-1.8.el6.x86_64 unzip-6.0-2.el6_6.x86_64 10.0.0.51 | success | rc=0 >> wget-1.12-5.el6_6.1.x86_64 vim-enhanced-7.2.411-1.8.el6.x86_64 unzip-6.0-2.el6_6.x86_64 |
| [2] | When running Playbook, "GATHERING FACTS" task is always executed, it is the function which Ansible gets informations of target hosts and set them in variables. You can refer and use them in Playbooks. If you'd like to confirm which kinds of variables set, it's possible to output with "setup" module like follows. |
|
# display the contents of "GATHERING FACTS" with "setup" module [cent@dlp ~]$ ansible 10.0.0.51 -m setup
10.0.0.51 | success >> {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"10.0.0.51"
],
"ansible_all_ipv6_addresses": [
"fe80::216:36ff:fe29:7f1c"
],
"ansible_architecture": "x86_64",
"ansible_bios_date": "01/01/2007",
"ansible_bios_version": "0.5.1",
.....
.....
# refer to "ansible_distribution", "ansible_distribution_version"
- hosts: target_servers
tasks:
- name: Refer to Gathering Facts
command: echo "{{ ansible_distribution }} {{ ansible_distribution_version }}"
register: dist
- debug: msg="{{ dist.stdout }}"
ansible-playbook playbook_sample.yml
PLAY [target_servers] *********************************************************
GATHERING FACTS ***************************************************************
ok: [10.0.0.52]
ok: [10.0.0.51]
TASK: [Refer to Gathering Facts] **********************************************
changed: [10.0.0.52]
changed: [10.0.0.51]
TASK: [debug msg="{{ dist.stdout }}"] *****************************************
ok: [10.0.0.51] => {
"msg": "CentOS 6.6"
}
ok: [10.0.0.52] => {
"msg": "CentOS 6.6"
}
PLAY RECAP ********************************************************************
10.0.0.51 : ok=3 changed=1 unreachable=0 failed=0
10.0.0.52 : ok=3 changed=1 unreachable=0 failed=0
|